package com.cmyshare.design.bridgePattern;

/**
 * @version 1.0
 * @Author cmy
 * @Date 2024/2/26 17:48
 * @desc 测试类
 */
public class Test {
    /**
     * 个人总结：
     * 桥接模式是一种结构型设计模式，用于将抽象部分与实现部分分离，使得它们可以独立地变化。
     * 在这个例子中，抽象部分是人，实现部分是衣服。人可以穿不同的衣服，而衣服也可以穿给不同的人。
     *
     * @param args
     */
    public static void main(String[] args) {
        //实例化人对象，抽象类，进行扩展男人
        Person man = new Man();
        //实例化人对象，抽象类，进行扩展女人
        Person lady = new Lady();

        //定义实现类的接口，穿衣服动作类，进行扩展穿马甲
        Clothing jacket = new Jacket();
        //定义实现类的接口，穿衣服动作类，进行扩展穿裤子
        Clothing trouser = new Trouser();

        /*********************************实现某个人穿某个衣服的动作*******************************/
        //传入男人参数，调用哪个人穿马甲方法
        jacket.personDressCloth(man);
        //传入男人参数，调用哪个人穿裤子方法
        trouser.personDressCloth(man);
        //传入女人参数，调用哪个人穿马甲方法
        jacket.personDressCloth(lady);
        //传入女人参数，调用哪个人穿裤子方法
        trouser.personDressCloth(lady);
    }
}
